<!--
  @Descripttion:：企业端-职位应聘-简历详情，包含简历、职位、邀约记录、应邀反馈的数据
  @Author：yejianbo
  @Date：2022年05月29日 13:23:29
-->
<template>
  <section>
    <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
      <el-tab-pane label="应聘简历" name="1">
        <ResumeReview v-if="resumeId" ref="ResumeReview" :is-hava-user-info="true" :isCollection="true" @saveCollectFun="saveCollectFun" />
        <el-empty v-else description="暂无数据" />
      </el-tab-pane>
      <el-tab-pane label="职位详情" name="2">
        <JobDetail v-if="jobId" ref="jobDetail" />
        <el-empty v-else description="暂无数据" />
      </el-tab-pane>
      <el-tab-pane label="邀约记录" name="3">
        <InviteRecord v-if="hasInviteRecord" ref="InviteRecord" />
        <el-empty v-else description="暂无数据" />
      </el-tab-pane>
      <el-tab-pane label="备注列表" name="4">
        <RemarksList v-if="activeName=='4'" relationType="3" :relationId="userInfo.id"/>
      </el-tab-pane>
    </el-tabs>
  </section>
</template>

<script>
// 备注列表
import RemarksList from '@/components/remarksList/index.vue'
// 简历详情
import ResumeReview from '@/components/resumeReview/index.vue'
// 职位详情
import JobDetail from './components/jobDetail.vue'
// 邀约记录
import InviteRecord from './components/inviteRecord.vue'
import {
  getCopyResume,
  getJobInfo,
  getInvitationRecord
} from '@/api/company-admin-api/hireManage/index.js'
export default {
  // 组件名称
  name: 'Demo',
  // 局部注册的组件
  components: { ResumeReview, JobDetail, InviteRecord,RemarksList },
  // 组件参数 接收来自父组件的数据
  props: {
    jobId: {
      // 职位id
      type: [String, Number],
      default: ''
    },
    resumeId: {
      // 简历id
      type: [String, Number],
      default: ''
    },
    userInfo: {
      type: Object
    },
    inviteRecoredId: {
      // 邀约记录id
      type: [String, Number],
      default: ''
    }
  },
  // 组件状态值
  data() {
    return {
      activeName: '1',
      hasInviteRecord: false
    }
  },
  // 组件方法
  methods: {
    init() {
      this.getResumeData()
      this.activeName = '1'
    },
    saveCollectFun(status){
      this.userInfo.collectStatus = status
      this.$emit('saveCollectFun')
    },
    // tag切换
    handleClick(data) {
      const type = Number(data.index)
      switch (type) {
        case 0:
          this.getResumeData()
          break
        case 1:
          this.getJobData()
          break
        case 2:
          this.getInviteRecord()
          break
      }
    },
    // 获取职位数据
    getJobData() {
      if (this.jobId) {
        const params = {
          id: this.jobId
        }
        getJobInfo(params).then((res) => {
          if (res.code === 0 && res.data) {
            this.$refs.jobDetail.open(res.data)
          }
        })
      }
    },
    // 获取简历数据
    getResumeData() {
      if (this.resumeId) {
        const params = {
          id: this.resumeId
        }
        getCopyResume(params).then((res) => {
          if (res.code === 0 && res.data) {
            setTimeout(() => {
              res.data.relationType = '3'
              res.data.collectStatus = this.userInfo.collectStatus
              this.$refs.ResumeReview.open(res.data)
            })
          }
        })
      }
    },
    // 获取邀约记录id
    getInviteRecord() {
      if (this.resumeId) {
        const params = {
          pageNo: 1,
          pageSize: 999,
          sendRecordId: this.inviteRecoredId
        }
        getInvitationRecord(params).then((res) => {
          if (
            res.code === 0 &&
            res.data &&
            Array.isArray(res.data.list) &&
            res.data.list.length &&
            Number(res.data.list[0].status) >= 2
          ) {
            /**
             * 简历状态（新），resumeStatus（投递过程的工单状态）
             *  0 投递成功，企业未查看简历、
             *  1 企业已查看投递记录、
             *  2 已发送面试邀约、
             *  3 学生已查看 、
             *  4 已拒绝面试邀约、
             *  5 已确认面试邀约、
             *  6 学生已反馈，企业未反馈、
             *  7 企业已反馈，学生未反馈、
             *  8 都反馈，结束
             */
            this.hasInviteRecord = true
            setTimeout(() => {
              this.$refs.InviteRecord.open(res.data.list[0])
            })
          } else {
            this.hasInviteRecord = false
          }
        })
      }
    }
  }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped></style>
